Hierarchical Shape Abstraction for Analysis of Free List Memory Allocators
نویسندگان
چکیده
We propose a hierarchical abstract domain for the analysis of free-list memory allocators that tracks shape and numerical properties about both the heap and the free lists. Our domain is based on Separation Logic extended with predicates that capture the pointer arithmetics constraints for the heap-list and the shape of the free-list. These predicates are combined using a hierarchical composition operator to specify the overlapping of the heap-list by the free-list. In addition to expressiveness, this operator leads to a compositional and compact representation of abstract values and simplifies the implementation of the abstract domain. The shape constraints are combined with numerical constraints over integer arrays to track properties about the allocation policies (best-fit, first-fit, etc). Such properties are out of the scope of the existing analyzers. We implemented this domain and we show its effectiveness on several implementations of free-list allocators.
منابع مشابه
A Concurrent Fast-fits Memory Manager University of Florida, Dept. of Cis Electronic Tr91-009
Shared memory multiprocessor systems need eecient dynamic storage allocators, both for system purposes and to support parallel programs. Most memory manager algorithms are based either on a free list, which provides eecient memory use, or on a buddy system, which provides fast allocation and release. In this paper, we present two versions of a memory manager based on the fast ts algorithm, whic...
متن کاملAnalysis on Dynamic Memory Allocation
Dynamic memory allocator has been an essential component in computer software for decades, which evolves to be sophisticated to meet both the strict performance and space requirements. This paper studies the design of simplified versions of two popular dynamic memory allocators, namely, the dlmalloc used in GNU libc and the tcmalloc used in Google Chrome browser. In this paper, we also conduct ...
متن کاملDiagnosing Abstraction Failure for Separation Logic-Based Analyses
Abstraction refinement is an effective verification technique for automatically proving safety properties of software. Application of this technique in shape analyses has proved impractical as core components of existing refinement techniques such as backward analysis, general conjunction, and identification of unreachable but doomed states are computationally infeasible in such domains. We pro...
متن کاملHierarchical Shape Abstraction of Dynamic Structures in Static Blocks
We propose a hierarchical shape abstract domain, so as to infer structural invariants of dynamic structures such as lists living inside static structures, such as arrays. This programming pattern is often used in safety critical embedded software as an alternative to dynamic memory allocation. Our abstract domain precisely describes such hierarchies of structures. It combines several instances ...
متن کاملSymbolic Execution and Model Checking for Testing
Subsumption • Symbolic execution with subsumption checking – Not enough to ensure termination – An infinite number of symbolic states • Our solution – Abstraction • Store abstract versions of explored symbolic states • Subsumption checking to determine if an abstract state is re-visited • Decide if the search should continue or backtrack – Enables analysis of under-approximation of program beha...
متن کامل